package com.custom.action.core;

import com.custom.jdbc.configuration.DbDataSource;
import com.custom.jdbc.configuration.DbGlobalConfig;
import com.custom.jdbc.session.JdbcSqlSessionFactory;

/**
 * @author XiaoBai
 * @since 2024/4/18 11:20
 * <br/> 该类负责管理数据库表结构操作，不对表数据进行读写
 */
public class JdbcTableDao extends BaseOpHandler {


    /**
     * 删除表
     */
    public final void dropTables(Class<?>... arr) throws Exception {
        sqlExecutor.dropTables(arr);
    }

    /**
     * 创建表
     */
    public final void createTables(Class<?>... arr) throws Exception {
        sqlExecutor.createTables(arr);
    }

    /**
     * 是否存在表
     */
    public final boolean hasTable(Class<?> tableClass) throws Exception {
        return sqlExecutor.hasTable(tableClass);
    }

    /**
     * 是否存在表
     */
    public final boolean hasColumn(Class<?> tableClass, String columnName) throws Exception {
        return sqlExecutor.hasColumn(tableClass, columnName);
    }

    public final void execTableSql(String sql) throws Exception {
        sqlExecutor.execTableSql(sql);
    }



    public JdbcTableDao(DbDataSource dbDataSource, DbGlobalConfig globalConfig) {
        super(dbDataSource, globalConfig);
    }

    public JdbcTableDao(JdbcSqlSessionFactory sqlSessionFactory) {
        super(sqlSessionFactory);
    }

}
